MetaTrader reports one balance for everything you run. If several Expert Advisors are working at once, that single figure cannot tell you which of them earned the money and which quietly lost it.
Strategy Ledger Pro reads your account history, rebuilds every closed position, groups the positions by the Expert Advisor that opened them, and puts the result on one screen. It grades each strategy, states plainly what it thinks and why, and shows its arithmetic so you can check it.
The panel is read-only. It contains no trading code and never places, modifies or closes an order. Its tick handler is empty, it creates no indicators and reads no price data. Everything it shows is derived from history your terminal already holds.
Attach the panel to a chart of its own — any symbol, any timeframe. It draws over the chart, so a dedicated one is more comfortable than sharing.
Load your full history first. Open the Terminal window, go to the History tab, right-click, and choose All history. MetaTrader only keeps in memory what you have asked it for, and the panel can only count what is there. The reconciliation line in the footer will tell you if anything is missing.
No configuration is needed. Names are learned from your order comments, strategies are grouped automatically, and everything can be corrected by hand afterwards.
Three details in the accounting decide what you see, and each is worth understanding before you compare the panel against another tool.
MetaTrader stores orders and deals; closed positions are assembled from them. Strategy Ledger groups deals by position identifier and books a single trade only when the closing volume matches the opening volume. A position closed in six parts counts once, not six times. Trade counts, win rate, expectancy and losing streaks all follow from this.
Some Expert Advisors run several strategies under a single magic number and separate them only by the order comment. Grouping by magic alone would merge them into one row. A strategy here is identified by its magic number together with the comment on its opening deal, so each keeps its own line and its own figures.
The footer compares deposits and withdrawals plus every realised result against the balance your account reports. If the two disagree, the difference is shown rather than hidden. The audit export lists every position with an independent cross-check, so the figures can be verified against your own MetaTrader report.
Two tools reading the same account can disagree simply because one counts partial closes as separate trades. If a figure here differs from one elsewhere, the audit export will usually show which of the two conventions explains it.
The account, its balance and equity, free margin, and a feed indicator. The indicator answers one question — can the numbers on this screen be trusted right now? Only figures derived from live quotes can go stale: floating result, exposure, equity and free margin. Everything realised comes from closed deals and is never stale.
| State | Meaning |
|---|---|
| LIVE | Every symbol you hold a position in is quoting. Everything on screen is current. |
| PART LIVE | Some are quoting and some are not — crypto on a Sunday while the FX session sleeps. Part of your floating figure is live and part is Friday's. |
| CLOSED | You hold positions and none of their symbols are quoting. Floating figures are frozen at the last close. |
| FLAT | Nothing is open, so nothing can be stale and no claim is made. |
| OFFLINE | The terminal has lost its connection. A different problem, and the one worth acting on. |
The clock beside it shows the last server time heard, and dims when it has stopped. A CLOSED reading next to a clock that is still moving is normal: your broker is quoting something, just not what you are holding.
Seven readings for the selected period: realised result, unrealised result on open positions, the two combined, profit factor, maximum drawdown, the strongest performer, and the one needing attention. The last two name a row you can go and look at.
Three levels. The first is the Expert Advisor, with its grade and a line describing how many strategies it holds. The second is the individual strategy, with its magic number, comment, last trade date and symbols. The third — click any row — opens a full panel of measures, a breakdown by symbol, a monthly chart, and a written verdict.
Nine columns run across every row: closed positions, win rate, realised result, floating result, profit factor, expectancy, maximum drawdown, recovery factor, and a small equity curve with a drawdown marker beneath it. Narrow the panel and the least essential columns step aside rather than crowding; what a strategy has made never does.
A rail down the left edge of any row whose realised figure has changed since the server day began — green up, red down — with the amount beside it on Expert Advisor rows. Rows that have not moved carry nothing, so the rail is something to scan for rather than decoration. It is measured from the day boundary rather than from when you last opened the panel, so it reads the same for everyone and needs nothing remembered between sessions. It is not shown on the TODAY tab, where it would only repeat the realised column.
C, or the DETAILED / COMPACT switch in the footer, halves the row height — dropping the second line under each name and the equity curve at the right. Roughly twice as many rows fit, and because the curve is the most expensive thing on a row the fuller screen draws slightly faster than the emptier one. The setting is remembered.
Point at any row and a faint eye appears at its right-hand edge; click it to take that row off the board. Hidden rows keep the eye showing permanently, in amber, so it doubles as the control that brings them back. On an Expert Advisor it applies to all of its strategies at once.
Hidden rows are marked rather than merely dimmed: an amber rail down the left edge, a darker fill, and a note reading HIDDEN — CLICK THE EYE TO RESTORE. An Expert Advisor whose strategies are all hidden shows no figures at all — it has none, and printing zeros would say it made nothing, which is a different claim. Those rows sink to the foot of the table, because a row with no figures cannot be sorted by them and would otherwise drift about as the rows around it earned and lost.
The camera in the header saves a picture of the panel — exactly as it appears, popovers and
all — as a PNG under \Screens\, stamped like the CSV exports so a screenshot and an
export taken together sort side by side. Nothing is highlighted in the image and no confirmation
appears in it; both would be artefacts of taking the picture rather than part of the panel.
Every row on the panel is judged on its own, so several Expert Advisors can each look healthy and still be several versions of the same bet. When that bet goes wrong they all go wrong on the same afternoon. CORRELATION in the header is the one place the panel compares rows against each other rather than scoring them separately.
It answers a single question: which rows move the same way on the same days? Each row's closed trades are added up day by day, and two rows are compared across the days they both traded — days only one of them traded are excluded, because a day the other sat still is not evidence of anything. The result is the Pearson correlation coefficient, the standard statistical measure of how two series move together.
| Reading | Meaning |
|---|---|
| +1 | identical — the two rise and fall together |
| 0 | unrelated — one tells you nothing about the other |
| −1 | opposite — one tends to be up when the other is down |
The conventional strength bands are very weak below 0.20, weak to 0.40, moderate to 0.60, strong to 0.80 and very strong above it. They read the size of the number, so −0.80 is as strong a link as +0.80 pointing the other way.
The list runs from the most correlated down, because concentration is the risk the feature exists to surface; two rows that offset each other are the opposite of a problem. The strongest pairs moving in opposite directions are kept below a rule so they are not lost off the end.
A toggle inside the box switches between EA, STRATEGY and SYMBOL. The same arithmetic, three questions: whether your robots are one bet, whether one robot's internal diversification is real, and whether several instruments are really one market.
Only the twenty busiest rows are compared, and a pair needs at least as many shared trading days as the minimum-sample input before it is listed at all — a confident figure drawn from six overlapping days is worse than no figure. The calculation runs when the box is opened and at most once a day thereafter, so it never touches the redraw. The ? inside the box explains all of this on screen.
Expand a row and a strip of coloured blocks appears beneath the monthly chart, on the same months as the bars above it. Each block is that row's grade, so a slide from green through amber is decay you can see rather than infer.
The blocks are cumulative: each one is the grade calculated on everything the row had closed up to the end of that month, not that month judged alone. A single month rarely holds enough trades to grade at all. This is why a row that is Exceptional today can show grey early blocks — grey means too few trades to judge yet, not a bad month.
Months that passed before the panel was installed are reconstructed from your trade record using the same calculation the live panel uses, so the strip is populated from the first run. A month the panel has actually watched is never overwritten by a reconstruction of it.
The small i at the right of the footer opens a card showing each mark beside its name — the keel, the two rails, the triangle, the eye, the five feed states — with the column abbreviations and the full keyboard list. It does not repeat the badges, because every badge on a row is already explained in that row's own verdict, in words and with that row's own figures in the sentence.
Open an Expert Advisor with many strategies and scroll: its own row pins to the top of the table while its strategies pass underneath, so you always know whose figures you are reading. The pinned row is the real row — every column, and its tick box, collapse and hide all work from there. Collapsing from it returns you to where that row actually sits.
A single statistic cannot describe a trading system, so three are measured and averaged.
Each component is capped before averaging, so a spectacular profit factor cannot paper over a severe drawdown. The result is a score out of 100 and a grade whose colour matches the word.
It is a ranking heuristic — three measures averaged and then capped by open risk. It is not a probability of success, a probability of profitability, or a calibrated statistic of any kind. Two strategies scoring 70 and 50 are ordered; the gap between them is not a quantity with meaning. Read the grade and the verdict, and treat the number as a sort key.
| Grade | Meaning |
|---|---|
| LOSING | The strategy lost money. This is a fact, not a judgement. |
| WEAK | Score 0–29. |
| FAIR | Score 30–49. |
| GOOD | Score 50–69. |
| STRONG | Score 70–84. |
| EXCEPTIONAL | Score 85–100. |
| UNPROVEN | Fewer than 20 closed positions. Too few to judge, whatever the figures say. |
| UNVERIFIED | The row contains netting reversal deals, where one deal closes a position and opens the opposite one under the same identifier. Trade boundaries cannot be established with certainty, so the row is described but deliberately not graded. Netting accounts only. |
Whether a strategy earns and whether the result is statistically certain are different questions, so they are answered separately. A profitable strategy that has not yet passed the significance test keeps its grade and receives an additional UNCONFIRMED mark.
A position that closes at nothing is neither a win nor a loss, and is counted as neither.
Where a strategy has any, the wins and losses cell reads 8 / 3 / 2be. Folding them
into the loss column would inflate the loss count, extend the losing streak, enter the
average-loss denominator and lower the win rate — for trades that cost nothing.
The strategies inside one Expert Advisor often trade very different sizes, and a single test across all of them is dominated by the differences between them rather than by the edge within them. Group rows therefore combine each strategy's own result weighted by how much it traded, and are graded on the group's actual profit factor and recovery factor.
Combining strategies this way treats each one as separate evidence. Strategies under a single Expert Advisor frequently do not move independently — several variants of one idea, or several strategies on one instrument, tend to win and lose together. Where that is true the combined figure reads stronger than the underlying edge really is, because correlated copies of one result are being counted as several findings. For this reason a parent row shows its figure marked combined and is never described as statistically significant. The verdict says so outright where the number is strong.
The grade describes overall performance. These marks each point at one specific thing worth attention, and sit alongside the grade rather than replacing it. A row shows the most serious and counts the rest as +2; open the row to see them all.
| Mark | What it means |
|---|---|
| n OPEN | Live positions held right now, and how many. |
| LOSING | Money has been lost, shown even where the sample is too small to grade. A short record can answer "has this lost money" long before it can answer "does this have an edge". |
| HIDDEN RISK | Live equity has fallen far further than the closed trades ever show. See the next section — this is the most valuable mark on the panel. |
| OPEN LOSS EXCEEDS PROFIT | Unrealised losses now outweigh everything the strategy has ever booked. |
| OPEN LOSS | Unrealised losses are material against what has been earned. |
| DD BREACH | The current fall below the strategy's own high point is deeper than its own trades would ordinarily produce in a different order. Six hundred reshuffles establish what is ordinary. When losses cluster more tightly than chance allows, the cause is usually changed conditions rather than bad luck. |
| DECAYING | The most recent third of trades has produced a meaningfully weaker average than the earlier two thirds. The verdict gives both figures. |
| UNCONFIRMED | Profitable and old enough to grade, but not yet statistically significant. This says the evidence is thin, not that the strategy is poor, and it clears on its own as trades accumulate — provided the edge is real. |
| IDLE n D | Nothing closed for that many days and nothing currently open. A strategy holding a long position is not idle. |
| n LOSING INSIDE | The Expert Advisor is profitable overall but carries strategies that are losing. |
| NO CLOSED TRADES | Nothing closed in the selected period, though positions may be open. |
A report built only from closed trades will describe a strategy that holds losers and closes them near breakeven as though nothing had happened. The closed figures look immaculate, because the loss was never realised.
Strategy Ledger Pro samples the live value of every strategy while it runs and records the worst fall from its own high point. Where that live drawdown runs far beyond anything the closed trades show, the row is marked HIDDEN RISK and the detail panel gives both figures side by side.
A row with nine closed trades averaging a small loss cannot produce a large drawdown by booking losses. If its equity drawdown is many times its closed drawdown, the money went somewhere the closed figures never saw — positions taken deep underwater and waited out. That is worth knowing before you size up.
Open a row and you will find two drawdown estimates next to each other. They answer different questions and the gap between them is often the finding.
| Cell | What it is |
|---|---|
| EQUITY DD | Measured. The worst fall in that strategy's live value — its closed result plus whatever its open positions were worth — recorded as it happened. The number beside the label is how many days have been watched. |
| MONTE CARLO 95% | Modelled. The strategy's closed trades are shuffled into six hundred different orders and the worst dip recorded for each; this is the figure 95% of those orders stayed within. It says how bad an unlucky sequence of the same trades could have been. |
Monte Carlo is built from closed trades alone, so it cannot see money that went underwater and came back. On a strategy that holds its losers it will always look reassuring. When the measured figure towers over the modelled one, that difference is the risk the closed record cannot express — and it is why the two sit together rather than one replacing the other.
The reverse is also worth reading. Where a strategy's actual worst drawdown exceeds the modelled figure, its real sequence was unluckier than 95 out of 100 reshuffles of its own trades — which is not bad luck but losses arriving in runs. The verdict says so when it happens.
It cannot be reconstructed afterwards. MetaTrader records your trades but not what your account was worth between them, so there is no way to work out where equity dipped last Tuesday — it has to be watched as it happens. That is precisely why it catches what the closed record misses, and it means the figure covers only the time the panel was attached and the terminal open. The day count beside the label is time actually watched: if the panel is away for a week, that week is not counted.
Where nothing has been observed yet the cell shows a dash rather than a zero. A zero would read as no drawdown when it means nothing seen.
Costs are reported separately rather than as one total, because they call for different responses: frequent trading raises commission, long holding periods raise swap.
Slippage is reported as two figures for the same reason.
Every slippage figure carries the number of events behind it. A large total over few events means something different from the same total spread over hundreds.
Slippage on stop orders is largely inherent to breakout entry rather than evidence of poor execution: a stop becomes a market order the moment it triggers, so the fill lands wherever the book is. It is a real cost, but it is a cost of the strategy's design.
Names are read from deal comments, and Expert Advisors are grouped by stripping symbol names and trailing numbers from those comments. That works often but not always, so every part of it can be overridden. Changes save immediately and return next session.
| Action | How |
|---|---|
| Combine strategies | Tick several rows, press G |
| Move a strategy | Drag it onto an Expert Advisor row |
| Merge two EAs | Drag one onto the other |
| Rename | Click any name and type |
| Hide a row | Click the eye at its right, or tick rows and press X |
| Separate a group | Press U |
| Show what is hidden | Press H; restore everything with J |
Hiding a row adjusts every total, so it is a way of asking "what would this account look like without that". Rows hidden in the EA view stay visible in the symbol view, because the two views answer different questions.
A hidden row is out of its Expert Advisor's figures whether or not you are revealing hidden rows. Pressing H changes what you can see, never what is counted. Revealed rows are drawn dimmed, with an amber rail and a mark reading HIDDEN — CLICK X TO RESTORE.
The MAGIC button opens a list of every magic number on the panel, sorted by number, each one tickable to take it off the board. It exists because a magic number does not always correspond to a row you can point at: one magic can carry several comments, and those can sit under different Expert Advisors, so there may be no single row to hide.
Untick one and it says what was removed and what it was worth — taken out 3 magics, 412 rows, −1,240.50. That is the point of the tool. Removing rows is what hiding already does; filtering answers what the board looks like without a magic, and the figure tells you.
Click a magic carrying more than one comment to open it and see each comment with its own row count and result. Columns sort — click a heading, click again to reverse.
Hiding is a decision about your board: it is per view, it is saved, and it survives restarts. Filtering is a lens you look through: it applies in both views at once, it is not saved, and it is gone when you next attach the panel. Neither puts anything into the other's list, and the HIDDEN count never counts a filtered magic.
If one strategy runs under two magic numbers, Merge identical comments will treat the same comment as one strategy regardless of magic. The exception list keeps chosen comments apart and accepts a trailing asterisk as a wildcard.
By Expert Advisor is the default: each row is one EA, expanding it shows the strategies inside. By symbol — press V — makes each row an instrument and shows every strategy trading it. That answers a question the first view cannot: whether the losses are concentrated in one market.
The data and the totals are identical in both.
Today, MTD, YTD, 30 days, 90 days, 12 months, all history, or a custom range from the calendar (D). Keys 1–7 select them directly, in the order they appear.
Today runs from midnight on the server's date, which is what the clock in the header shows. On a broker whose feed has stopped for the weekend that clock is holding Friday's time, so Today means the last trading session rather than the calendar date on your wall.
A position falls into a period by its closing time by default, which is when the money was actually booked. The Period basis setting switches this to opening time if you would rather see when an Expert Advisor was working.
| Export | Contents |
|---|---|
| E Measures | Every statistic for every row: all the columns, the costs, slippage, the score and the verdict. Includes net_win, net_loss, raw_gross_profit and raw_gross_loss. |
| A Audit | Every closed position individually — open and close times, magic, comment, strategy, symbol, lots, gross, commission, swap, net, deal count, and whether it was in scope or hidden. |
The audit is the file to check the panel against your own MetaTrader report, and the file to attach if you ever report a problem. It contains everything needed to reproduce what you are seeing.
Both land in MQL5\Files\StrategyLedgerPro\<account>\ (exports) and \Screens\ (panel screenshots, PNG), named by date and time
— AUDIT_260821_143205.csv and LEDGER_260821_143205.csv. Every click
writes its own file; the timestamps run to the second, so two exports moments apart do not
overwrite each other.
A note appears under the button naming the file, what went into it and where it went, and counts itself down before fading. Clicking anywhere clears it at once. A write that fails says so in red rather than failing in silence.
The long-standing gross_profit and gross_loss columns hold
net outcomes and keep their names for compatibility with existing parsers. Treat them as
legacy; the correctly named columns sit beside them.
| Overrides | Manual names, written magic|comment=Name |
| Learn names from deal comments | On by default |
| Group magics into EAs | On by default |
| Merge identical comments | Off by default |
| Exceptions to merging | Semicolon-separated, trailing * allowed |
| Show magic 0 | Includes manual and mobile trades |
| Period basis | Count a position by close time or open time |
| Period on first start | Which tab is selected the first time |
| Default sort | The column used on load |
| Theme | Night or day (T toggles) |
| X / Y offset | Position on the chart |
| Width | 1400 by default, or drag the corner grip |
| Table height | 680 by default, or the grip, or [ ] |
| Remember layout | Stores theme, size, sort, period and view |
| Shrink to fit the chart | Keeps the panel inside the chart area |
| Live clock | Shows seconds and refreshes each second |
| Statistical verdicts | On by default |
| Minimum trades | 20 closed positions before grading |
| Simulation runs | 600 reshuffles per row for the drawdown estimate |
| Track equity drawdown | On. Samples live value per row — this is what powers HIDDEN RISK |
| Losing threshold | Profit factor below which a strategy is marked losing. Default 1.00 |
| Idle days | Days without a close before the idle mark. Default 30 |
| Automatic export | Writes the measures file on every refresh |
| Text size | 0 for automatic, or 0.40–1.50 to set it by hand |
| Detailed log | Prints timings and accounting checks to the Experts tab |
| Adopt earlier equity history | One-time, for upgraders — see Limitations |
| 1–7 | Select the period, in the order the tabs appear |
| D | Open the date calendar |
| V | Switch between EA and symbol views |
| T | Day / night theme |
| C | Compact rows on or off |
| G | Combine the ticked rows |
| U | Separate a group |
| X | Hide the ticked rows |
| H | Reveal hidden rows |
| J | Restore every hidden row |
| A | Export the audit |
| E | Export the measures |
| R | Rescan history |
| [ ] | Shorter / taller table |
| Esc | Clear the selection |
| Home PgUp PgDn | Scroll |
Stated plainly, because a tool that hides its limits cannot be trusted with the rest.
A trade opened in March and closed in July counts in July. Change Period basis to opening time if you would rather see when an Expert Advisor was running.
It is sampled live and cannot be rebuilt from history, so it covers the hours the panel was attached and the terminal open, and no others. The day count beside the figure is time actually watched, not days on the calendar. A deep dip that happened overnight, or while the panel was closed, leaves no trace and cannot be recovered.
There used to be one in the footer and it was withdrawn. It sampled the terminal's equity, which on an account carrying a credit line includes the credit as well as the trading result, and like every equity figure it only ever saw the seconds the panel was running — so it was a floor on an unknown with no way to state the margin. The account's drawdown of record is MAX DRAWDOWN in the header, which is rebuilt from the full deal history and can be checked. Per-row equity drawdown remains, because it is built from the panel's own row curves rather than from the terminal's equity.
The header divides its drawdown by peak account balance, which includes your deposits. A row's GAVE BACK divides that row's drawdown by its own peak cumulative profit, a curve starting at zero. On an account with meaningful deposits the two differ by the deposits — the same drawdown can read 4% in the header and 76% in the row, both correct. Each states its denominator so the two can be told apart.
Price differences are converted to money using the symbol's current tick value. For instruments where that value moves with price or with the account-currency exchange rate, historical slippage is being valued at today's rate rather than the rate that applied at execution. The direction and the event counts are reliable; treat the money as indicative on those symbols.
Risk carried on positions still open is reported separately, through the equity readings and the HIDDEN RISK mark, rather than folded into that column.
It is valued at the symbol's current tick value rather than the value at the moment of the fill, and is labelled accordingly. Entry slippage can only be measured where the order named a price; Expert Advisors entering at market give nothing to compare against.
On a netting account, one deal can close a position and open the opposite one under the same identifier. Splitting that cleanly into two trades is not yet implemented, so affected rows are marked UNVERIFIED and left ungraded rather than reported as if the boundaries were certain.
Names, groups, hidden rows, layout and equity-drawdown history are stored separately for each account and server. Settings from before version 5.4 are copied across automatically on first run, and the originals left in place as a backup. Equity-drawdown history deliberately starts fresh: importing another account's high-water mark would report a drawdown that never happened. Adopt earlier equity history exists for the case where you know the old record belongs to the current account.
If an Expert Advisor writes a different comment on every trade, each variant forms its own row. Numbers and order references are stripped automatically; anything unusual can be grouped by hand.
| Symptom | Cause and cure |
|---|---|
| Reconciliation shows a difference | Usually incomplete history. Terminal → History tab → right-click → All history, then press R. If it persists, the audit export will show which day the difference enters. |
| Trade counts differ from another tool | Most likely partial closes. This panel books one trade per position; tools that count closing deals report more. The audit export shows the deal count behind each position. |
| One EA appears as many rows | It writes a varying comment. Tick the rows and press G, or set a name override. |
| Text too large or too small | Set Text size between 0.40 and 1.50. Leave at 0 for automatic. |
| Panel wider than the chart | Enable Shrink the panel if it overflows the chart, or drag the corner grip. |
| A row is graded UNVERIFIED | It contains netting reversal deals. The figures are shown but not graded; see Limitations. |
| Equity drawdown reads zero days | Tracking starts when the panel first runs on that account. The figure becomes meaningful after a few days of sampling. |
| Something else | Attach the audit export to your report. It contains what is needed to reproduce the problem. |
Questions, suggestions and problem reports are welcome in the product comments or by private message. When reporting a problem, please attach the audit export and say which version you are running — the panel prints it in the header, beside its name.